Methods and systems for configuring radio frequency module

ABSTRACT

The present invention discloses methods and systems for configuring at least one radio frequency (RF) module by a wireless communication apparatus. The wireless communication apparatus sends a first message to the at least one RF module, and the first message comprises a request for at least one international mobile subscriber identity (IMSI) of at least one subscriber identity module (SIM) card. A second message is then received from the RF module, and the second message comprises the at least one IMSI. The wireless communication apparatus determines which wireless network service provider(s) the at least one SIM card is associated with. The wireless communication apparatus identifies at least one configuration information. The wireless communication apparatus then sends a third message to the at least one RF module, and the third message comprises the at least one configuration information. The at least one RF module is then configured based on the at least one configuration information.

RELATED APPLICATIONS

The present application is a Non-provisional continuation applicationwhich claims the benefits of and is based on application Ser. No.14/410,096 titled “METHODS AND SYSTEMS FOR CONFIGURING RADIO FREQUENCYMODULE” filed on 24 Oct. 2014. The contents of the above-referencedapplication are herein incorporated by reference.

TECHNICAL FIELD

The present invention relates in general to the field of computernetworks. More particularly, the present invention relates to methodsand systems for configuring a Radio Frequency (RF) module by a wirelesscommunication apparatus. A configuration in-formation is sent to the RFmodule, where the configuration information is identified according toan international mobile subscriber identity (IMSI) of a subscriberidentity module (SIM) card.

BACKGROUND ART

Wireless communication apparatus that have cellular capabilities can usea Radio Frequency (RF) module for communicating with base stations ofdifferent wireless network service providers. An RF module can beconfigured manually to switch from one operating mode to another when aSubscriber Identity Module (SIM) card is changed or identity of wirelessnetwork service provider changes. Depending on the wireless networkservice provider, settings at the RF module may be different fordifferent wireless network service provider or different type of serviceprovided by wireless network service providers. In this way, the samewireless communication apparatus can operate with different SIM cards ordifferent wireless network service providers.

U.S. Pat. No. 8,346,255 discloses configuring a mobile wirelesscommunication device with configuration profiles based on a set ofidentifier values. U.S. Pat. No. 8,346,255 fails to disclose methods forconfiguring an RF module. It also fails to disclose methods forconfiguring the RF module of a wireless communication apparatus.Further, it also fails to disclose methods for configuring based oninternational mobile subscriber identity (IMSI) only.

As different wireless network service providers may use differentfrequency values, different protocols, and different settings whileproviding services to wireless communication apparatus, the wirelesscommunication apparatus may need to configure one or more of its RFmodules accordingly in order to use the wireless communication servicesprovided by the wireless network service providers.

There is a need for methods and systems for configuring RF modules ofwireless communication apparatus in order to allow the wirelesscommunication apparatus to be able to use wireless communicationservices provided by different wireless network service providers.

DISCLOSURE OF INVENTION Summary

The present invention discloses methods and systems for configuring atleast one radio frequency (RF) module by a wireless communicationapparatus. The wireless communication apparatus sends a first message tothe at least one RF module, and the first message comprises a requestfor at least one international mobile subscriber identity (IMSI) of atleast one subscriber identity module (SIM) card. A second message isthen received from the at least one RF module, and the second messagecomprises the at least one IMSI of the at least one SIM card. The RFmodule retrieves the at least one IMSI from the at least one SIM card.The wireless communication apparatus determines which wireless networkservice provider(s) the at least one SIM card is associated with. Basedon the wireless network service provider, the wireless communicationapparatus identifies at least one configuration information. Thewireless communication apparatus then sends a third message to the atleast one RF module, and the third message comprises the at least oneconfiguration information. The at least one RF module is then configuredbased on the at least one configuration information.

According to one of the embodiments, the configuration information canbe information corresponding to a firmware, a firmware or one or moresettings. The one or more settings can be selected from a groupconsisting of a frequency value, an Access Point Name (APN), anauthentication information, a network type, and roaming networksettings.

According to one of the embodiments, the configuration information issubstantially based on Qualcomm MSM Interface (QMI) protocol.

According to one of the embodiments, when the wireless communicationapparatus houses a plurality of SIM cards, the wireless communicationapparatus assigns priorities to the plurality of SIM cards. The at leastone IMSI retrieved is an IMSI of a SIM card with the highest priority.The priorities may be based on position of the plurality of SIM cards.

According to one of the embodiments, when the at least one configurationinformation is information corresponding to a firmware, the wirelesscommunication apparatus determines whether the firmware is stored in theat least one RF module. If the firmware is not stored in the at leastone RF module, the wireless communication apparatus sends the firmwareto the at least one RF module. When the firmware is stored in the atleast one RF module, the at least one RF module configures itself withthe firmware.

According to one of the embodiments, the wireless communicationapparatus sends a fourth message to the at least one RF module, and thefourth message comprising a request for a current configurationinformation of the at least one RF module. The wireless communicationapparatus compares the current configuration information of the at leastone RF module with the at least one configuration information. Thewireless communication apparatus sends the configuration information tothe at least one RF module and configures the at least one RF modulewith the configuration information if the current configurationinformation of the at least one RF module is not the same as the atleast one configuration information. If the current configurationinformation of the at least one RF module is the same as the at leastone configuration information, the wireless communication apparatus doesnot send the configuration information to the at least one RF module andalso does not configure the RF module.

According to one of the embodiments, after configuring the at least oneRF module, the wireless communication apparatus verifies whether theconfiguration of the at least one RF module has been changed accordingto the configuration information. The verifying may be performed bydetermining whether a fifth message received from the at least one RFmodule is same as an expected response. According to one of theembodiments, the wireless communication apparatus resets the at leastone RF module after configuring.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1A is an illustrative block diagram of a wireless communicationapparatus according to various embodiments of the present invention;

FIG. 1B is an illustrative block diagram of a wireless communicationapparatus according to various embodiments of the present invention;

FIG. 1C illustrates a network environment according to one of theembodiments of the present invention;

FIG. 2A is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 2B is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 3A is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 3B is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 4A is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 4B is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 5 illustrates a format of an international mobile subscriberidentity (IMSI) of a SIM card inserted; and

FIG. 6 is a flowchart illustrating a process according to one of theembodiments of the present invention.

DETAILED DESCRIPTION

The ensuing description provides preferred exemplary embodiment(s) only,and is not intended to limit the scope, applicability or configurationof the invention. Rather, the ensuing description of the preferredexemplary embodiment(s) will provide those skilled in the art with anenabling description for implementing a preferred exemplary embodimentof the invention. It being understood that various changes may be madein the function and arrangement of elements without departing from thespirit and scope of the invention as set forth in the appended claims.

Specific details are given in the following description to provide athorough under-standing of the embodiments. However, it will beunderstood by one of ordinary skill in the art that the embodiments maybe practiced without these specific details. For example, circuits maybe shown in block diagrams in order not to obscure the embodiments inunnecessary detail. In other instances, well-known circuits, processes,algorithms, structures, and techniques may be shown without unnecessarydetail in order to avoid obscuring the embodiments.

Also, it is noted that the embodiments may be described as a processwhich is depicted as a flowchart, a flow diagram, a data flow diagram, astructure diagram, or a block diagram. Although a flowchart may describethe operations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be re-arranged. A process is terminated when itsoperations are completed, but could have additional steps not includedin the figure. A process may correspond to a method, a function, aprocedure, a subroutine, a subprogram, etc. When a process correspondsto a function, its termination corresponds to a return of the functionto the calling function or the main function.

Embodiments, or portions thereof, may be embodied in programinstructions operable upon a processing unit for performing functionsand operations as described herein. The program instructions making upthe various embodiments may be stored in a storage medium.

The program instructions making up the various embodiments may be storedin a storage medium. Moreover, as disclosed herein, the term “storagemedium” may represent one or more devices for storing data, includingread only memory (ROM), programmable read-only memory (PROM), erasableprogrammable read-only memory (EPROM), random access memory (RAM),magnetic RAM, core memory, floppy disk, flexible disk, hard disk,magnetic tape, CD-ROM, flash memory devices, a memory card and/or othermachine readable mediums for storing information. The term“machine-readable medium” includes, but is not limited to portable orfixed storage devices, optical storage mediums, magnetic mediums, memorychips or cartridges, wireless channels and various other mediums capableof storing, containing or carrying instruction(s) and/or data. Amachine-readable medium can be realized by virtualization, and can be avirtual machine readable medium including a virtual machine readablemedium in a cloud-based instance.

The term computer-readable medium, main memory, or secondary storage, asused herein refers to any medium that participates in providinginstructions to a processing unit for execution. The computer-readablemedium is just one example of a machine-readable medium, which may carryinstructions for implementing any of the methods and/or techniquesdescribed herein. Such a medium may take many forms, including but notlimited to, non-volatile media, volatile media, and transmission media.Non-volatile media includes, for example, optical or magnetic disks.Volatile media includes dynamic memory. Transmission media includescoaxial cables, copper wire and fiber optics. Transmission media canalso take the form of acoustic or light waves, such as those generatedduring radio-wave and infra-red data communications.

A volatile storage may be used for storing temporary variables or otherintermediate information during execution of instructions by aprocessing unit. A non-volatile storage or static storage may be usedfor storing static information and instructions for processor, as wellas various system configuration parameters.

The storage medium may include a number of software modules that may beimplemented as software code to be executed by the processing unit usingany suitable computer instruction type. The software code may be storedas a series of instructions or commands, or as a program in the storagemedium.

Various forms of computer readable media may be involved in carrying oneor more sequences of one or more instructions to the processor forexecution. For example, the instructions may initially be carried on amagnetic disk from a remote computer. Alter-natively, a remote computercan load the instructions into its dynamic memory and send theinstructions to the system that runs the one or more sequences of one ormore instructions.

A processing unit may be a microprocessor, a microcontroller, a digitalsignal processor (DSP), any combination of those devices, or any othercircuitry configured to process information.

A processing unit executes program instructions or code segments forimplementing embodiments of the present invention. Furthermore,embodiments may be implemented by hardware, software, firmware,middleware, microcode, hardware description languages, or anycombination thereof. When implemented in software, firmware, middlewareor microcode, the program instructions to perform the necessary tasksmay be stored in a computer readable storage medium. A processingunit(s) can be realized by virtualization, and can be a virtualprocessing unit(s) including a virtual processing unit in a cloud-basedinstance.

Embodiments of the present invention are related to the use of acomputer system for implementing the techniques described herein. In anembodiment, the inventive processing units may reside on a machine suchas a computer platform. According to one embodiment of the invention,the techniques described herein are performed by computer system inresponse to the processing unit executing one or more sequences of oneor more instructions contained in the volatile memory. Such instructionsmay be read into the volatile memory from another computer-readablemedium. Execution of the sequences of instructions contained in thevolatile memory causes the processing unit to perform the process stepsdescribed herein. In alternative embodiments, hard-wired circuitry maybe used in place of or in combination with software instructions toimplement the invention. Thus, embodiments of the invention are notlimited to any specific combination of hardware circuitry and software.

A code segment, such as program instructions, may represent a procedure,a function, a subprogram, a program, a routine, a subroutine, a module,a software package, a class, or any combination of instructions, datastructures, or program statements. A code segment may be coupled toanother code segment or a hardware circuit by passing and/or receivinginformation, data, arguments, parameters, or memory contents.Information, arguments, parameters, data, etc. may be passed, forwarded,or transmitted via any suitable means including memory sharing, messagepassing, token passing, network transmission, etc.

Alternatively, hardwired circuitry may be used in place of, or incombination with, software instructions to implement processesconsistent with the principles of the invention. Thus, implementationsconsistent with principles of the invention are not limited to anyspecific combination of hardware circuitry and software.

A network interface that may be provided by a node is an Ethernetinterface, a frame relay interface, a fibre optic interface, a cableinterface, a DSL interface, a token ring interface, a serial businterface, an universal serial bus (USB) interface, Firewire interface,Peripheral Component Interconnect (PCI) interface, etc.

A network interface may be implemented by a standalone electroniccomponent or may be integrated with other electronic components. Anetwork interface may have no network connection or at least one networkconnection depending on the configuration. A network interface may be anEthernet interface, a frame relay interface, a fibre optic interface, acable interface, a Digital Subscriber Line (DSL) interface, a token ringinterface, a serial bus interface, a universal serial bus (USB)interface, Firewire interface, Peripheral Component Interconnect (PCI)interface, cellular network interface, etc.

A network interface may connect to a wired or wireless access network.An access network may carry one or more network protocol data. A wiredaccess network may be implemented using Ethernet, fiber optic, cable,DSL, frame relay, token ring, serial bus, USB, Firewire, PCI, or anymaterial that can pass information. A wireless access network may beimplemented using infra-red, High-Speed Packet Access (HSPA), HSPA+,Long Term Evolution (LTE), WiMax, General packet radio service (GPRS),Global System for Mobile Communications (GSM), Enhanced Data rates forGSM Evolution (EDGE), Code division multiple access (CDMA), WiFi,CDMA2000, Wideband CDMA (WCDMA), Time Division CDMA (TD-SCDMA),BLUETOOTH, WiBRO, Evolution-Data Optimized (EV-DO); Digital EnhancedCordless Telecommunications (DECT); Digital AMPS (IS-136/TDMA);Integrated Digital Enhanced (iDEN) or any other wireless technologies.For example, a network interface may be used as a local area network(LAN) interface or a wide area network (WAN) interface

Embodiments, or portions thereof, may be embodied in a computer datasignal, which may be in any suitable form for communication over atransmission medium such that it is readable for execution by afunctional device (e.g., processing unit) for performing the operationsdescribed herein. The computer data signal may include any binarydigital electronic signal that can propagate over a transmission mediumsuch as

electronic network channels, optical fibers, air, electromagnetic media,radio frequency (RF) links, and the like, and thus the data signal maybe in the form of an electrical signal, optical signal, radio frequencyor other wireless communication signal, etc. The code segments may, incertain embodiments, be downloaded via computer networks such as theInternet, an intranet, local area network (LAN), metropolitan areanetwork (MAN), wide area network (WAN), the PSTN, a satellitecommunication system, a cable transmission system, and/or the like.

Universal integrated circuit cards (UICC) are a form of

§smart card

⁻ used in wireless communication apparatus on various wirelesscommunication networks. A well-known version of a UICC is a subscriberidentity module (SIM) card that can be used in wireless communicationapparatus on Global System for Mobile Communications (GSM) wirelesscommunication networks. Equivalents of SIM cards also include universalmobile telecommunication system (UMTS) SIM (USIM) cards on UMTS networksand Code Division Multiple Access SIM (CSIM) cards on Code DivisionMultiple Access (CDMA) networks. SIM cards can be issued by a wirelesscommunication service provider. When a SIM card is inserted into thecellular device, the processing unit of the wireless communicationapparatus may then be able to identify which wireless communicationservice provider associated with SIM card.

In general, each SIM card used for wireless communication service has aunique serial number known as an international mobile subscriberidentity (IMSI). The IMSI comprises a set of wireless networkidentification values. Portions of the IMSI can be accessed from the SIMcard in wireless communication apparatus to configure the wirelesscommunication apparatus for a particular wireless network serviceprovider's network.

The present invention discloses methods for configuring one or more ofradio frequency (RF) modules of the wireless communication apparatus bymaking use of the set of wireless network identification values.

FIG. 1A is an illustrative block diagram of a wireless communicationapparatus, such as wireless communication apparatus 101 according tovarious embodiments of the present invention. Wireless communicationapparatus 101 comprises processing unit 102, main memory 103, system bus104, secondary storage 105, Subscriber Identity Module (SIM) cardinterface 106, Radio Frequency (RF) module 107, and network interface108. Processing unit 102 and main memory 103 are connected to each otherdirectly. System bus 104 connects processing unit 102 directly orindirectly to secondary storage 105, SIM card interface 106, RF module107, and network interface

108. Using system bus 104 allows wireless communication apparatus 101 tohave increased modularity. System bus 104 couples processing unit 102 tosecondary storage 105, SIM card interface 106, RF module 107, andnetwork interface 108. System bus 104 can be any of several types of busstructures including a memory bus, a peripheral bus, and a local bususing any of a variety of bus architectures. Secondary storage 105stores program instructions for execution by processing unit 102. Thescope of the invention is not limited to wireless communicationapparatus 101 having one SIM card interface 106, RF module 107, ornetwork interface 108, such that wireless communication apparatus 101may have one or more SIM card interfaces 106, one or more RF modules107, and one or more network interfaces 108. SIM cards can be insertedinto SIM card interfaces 106. A SIM card socket can be a SIM cardinterface.

In a preferred embodiment, RF Module 107 used in the wirelesscommunication apparatus 101 is a MC7354 available from Sierra Wireless.

According to one of the embodiments, as illustrated in FIG. 1B, SIM cardinterface 116 and RF module 107 are connected to each other directly.SIM card interface 116 is not connected to system bus 104, and henceprocessing unit 102 can only communicate with SIM card interface 116through RF module 107. RF module 107 may be connected to one or more SIMcard interfaces 116.

In one variant, SIM card interfaces 106 and 116 may be embedded inwireless communication apparatus 101. Wireless communication apparatus101 houses the SIM card(s) inserted in SIM card interfaces 106 or 116.

Alternatively, an external device may house one or more SIM cards, andthe external device is connected to wireless communication apparatus101. The external device may also house one or more RF modules 107, andthus RF module 107 is not housed by wireless communication apparatus101. For example, the external device may be a

Universal Serial Bus (USB) Long-Term Evolution (LTE) modem and wirelesscommunication apparatus 101 connects to the external device through aUSB interface. Wireless communication apparatus 101 is capable ofconnecting to one or more external devices.

Wireless communication apparatus 101 may be comprised in a wirelesscommunication system. The wireless communication system compriseswireless communication apparatus 101, at least one RF module, and atleast one SIM card interface. The at least one RF module is housed inthe wireless communication apparatus or in an external device. The atleast one SIM card interface is housed in the wireless communicationapparatus or in the external device.

FIG. 1C illustrates a network environment according to one of theembodiments of the present invention. Wireless communication apparatus101 may connect to either base station 121 or base station 122 dependingon which wireless network service provider a SIM card inserted in SIMcard interface 106 is associated with. For example, wirelesscommunication apparatus 101 may connect to an AT&T Mobility networkthrough base station 121 if the SIM card is provided by AT&T Mobility.Alternatively, wireless communication apparatus 101 may connect to aVerizon network through base station 122 if the SIM card is provided byVerizon. Wireless communication apparatus 101 may access resources atcore network 123 through base station 121 or 122. The resources mayinclude hosts or servers accessible through core network 123.

FIG. 5 illustrates a format of an international mobile subscriberidentity (IMSI) 501 specified in the international telecommunicationsrecommendation ITU-T E.212 for a SIM card inserted in SIM card interface106. The first set of three digits of the IMSI 501 can specify a mobilecountry code (MCC) 502. The next set of two or three digits of the IMSI501 following the MCC 502 can specify a mobile network code (MNC)

503. The final set of not more than 10 digits can specify a mobilesubscriber identification number (MSIN) 504. A country or a region canbe associated with one or more MCC 502 values. For example, the MCC 502values for US can be between “310” and “316”, while MCC values for Chinaand Hong Kong are “460” and “454” respectively. MNC 503 can be twodigits or three digits. A wireless network service provider can beidentified by the combination of the MCC 502 and MNC 503 values. Awireless network service provider may be associated with one or more MNC503 for each MCC 502 value for the region of the wireless networkservice provider. For example, for MCC 502 value of “310”, MNC 503values that AT&T Mobility is currently associated with, include “070”,“311”, “380”, “410”, “560”, and “680”.

FIG. 2A is a flowchart illustrating a process according to one of theembodiments of the present invention. Processing unit 102 of wirelesscommunication apparatus 101 retrieves IMSI 501 in step 201. Processingunit 102 uses MCC 502 and MNC 503 to identify a wireless network serviceprovider associated with the SIM card inserted in SIM card interface106. A configuration information is then identified based on theidentity of the wireless network service provider at step 202. Theconfiguration in-formation is sent to RF module 107 in step 203 in orderto configure RF module 107 to use setting(s) and/or an operating modethat corresponds to the identified wireless network service provider.The process ends at step 204. In one variant, RF module 107 is reseteach time it is configured by sending a configuration information. Inone example, RF module 107 can be reset by power-cycling RF module 107.

A configuration information may be a firmware, information of afirmware, one or more settings corresponding to a firmware, or anyinformation that can be used to configure RF module 107.

For illustration purpose, retrieving IMSI 501 in step 201 comprise thefollowing steps. Processing unit 102 first sends a first message to RFmodule 107 requesting for IMSI 501. RF module 107 then communicates withSIM card interface 106 and retrieves IMSI 501 from the SIM card insertedin SIM card interface 106. RF module 107 sends the retrieved IMSI 501 toprocessing unit 102 using a second message, and processing unit 102 thusretrieves IMSI 501.

After processing unit 102 has retrieved IMSI 501, it is able todetermine which wireless network service provider the SIM card isassociated with, and hence identifies a configuration information basedon the wireless network service provider according to IMSI 501. Forexample, the configuration information is information corresponding to afirmware. Therefore, processing unit 102 determines a firmware thatshould be used by RF module 107 according to the identity of thewireless network service provider in step 202. Processing unit 102 sendsa third message to RF module 107 in step 203 indicating the firmwarecorresponding to the wireless network service provider. In one variant,RF module 107 stores firmwares corresponding to one or more wirelessnetwork service providers in its own storage medium. When processingunit 102 sends the information of the firmware, RF module 107 configuresitself with the corresponding firmware that is stored in a storagemedium of RF module 107.

In one variant, as illustrated in FIG. 2B, processing unit 102 sends afourth message to RF module 107 requesting for the current configurationinformation of RF module 107 in step 211. The current configurationinformation is information of a configuration

that RF module 107 has already been configured with. After identifying aconfiguration information based on the wireless network service providerin step 202, processing unit 102 compares the configuration informationand the current con-figuration information and determines whether theyare the same in step 212. If they are not the same, processing unit 102sends the configuration information to RF module 107 in step 203, andthe process ends at step 213. If they are the same, the configurationinformation is not sent to RF module 107, and the process ends at step213.

For illustration purposes, with reference to the example above, wherethe configuration information is information of a firmware, processingunit 102 retrieves in-formation of the current firmware in step 211. Thecurrent firmware is the firmware with which the RF module has alreadybeen configured. Then in step 202, processing unit 102 identifiesinformation of a firmware based on the identity of the wireless networkservice provider. In step 212, processing unit 102 determines whetherthe firmware identified in step 202 and the current firmware determinedin step 211 are the same. If they are the same, processing unit 102 doesnot need to send the information of the firmware to RF module 107 inorder to configure it with the firmware. If they

are not the same, processing unit 102 sends the third message to RFmodule 107 in step 203 indicating the information of the firmware. Theprocess ends in step 213.

For illustration purposes, the first, second, third, and fourth messagesare Qualcomm MSM Interface (QMI) messages using QMI protocol. The firstmessage and the second message correspond to step 201, and a commandthat queries the IMSI is “QMI_DMS_UIM_GET_IMSI”. The service type of thecommand is DMS, and the DMS message ID is 0x0043. The first message,which is sent by processing unit 102 for requesting IMSI 501, is arequest command “QMI_DMS_UIM_GET_IMSI_REQ”. Similarly, the secondmessage, which is sent by RF module 107 for indicating IMSI 501, is aresponse command “QMI_DMS_UIM_GET_IMSI_RESP”.

The fourth message corresponds to step 211. The fourth message is sentby executing a function defined in the QMI protocol. The name of thefunction corresponding to the fourth message is “GetImagesPreference”.The third message corresponds to step 203, and is sent by executing afunction defined in the QMI protocol, which is named“SetImagesPreference”. The function “SetImagesPreferences” can beexecuted with parameters according to the corresponding firmware, andhence RF module 107 is configured to use the corresponding firmware.

In one variant, the order of performing step 201 and 211 may beinterchanged, such that, step 211 may be performed before step 201.

In one variant, referring to FIG. 2A and FIG. 2B, after step 203, RFmodule 107 is or reset after it is configured according to theconfiguration information sent by processing unit 102. Resetting RFmodule 107 may be required in order to apply changes corresponding tothe configuration information. For example, when RF module 107 isconfigured with a firmware, RF module 107 is reset in order for thefirmware to be applied, i.e., so that RF module 107 starts usingsettings corresponding to the firmware.

In one variant, when a SIM card is inserted or re-inserted in SIM cardinterface 106, the process of FIG. 2A or FIG. 2B is performed, and theRF module is reset. In another variant, when wireless communicationapparatus 101 is turned on or restarted, the process of FIG. 2A or FIG.2B is performed.

In one variant, the configuration information is a firmware. Processingunit 102 may retrieve a firmware from secondary storage 105 or mainmemory 103 and send the firmware to RF module 107 in step 203. RF module107 is then configured with the firmware.

In one variant, the configuration information is a setting correspondingto a firmware. For example, the setting is a frequency to be used by RFmodule 107. Processing unit 102 identifies a frequency value orfrequency band based on the wireless network service provider and sendsthe frequency value in step 203 to RF module 107. For illustrationpurpose, processing unit 102 determines that IMSI 501 of a SIM card

inserted in SIM card interface 106 is “310070123456789”. MCC 502 and MNC503 values are “310” and “070” respectively. Therefore, processing unit102 is able to identify that the wireless network service provider isAT&T Mobility. In step 202, processing unit 102 identifies aconfiguration information which is the frequency value. Processing unit102 identifies the frequency value to be used is 700 MHz for AT&TMobility. RF module 107 is configured with the configuration informationand thus starts using 700 MHz for communicating.

The scope of the invention is not limited to the setting being afrequency value, such that the settings can be any settings of an RFmodule that can be configured by processing unit 102.

In one example, the setting is an Access Point Name (APN). RF module 107uses the APN for having Internet Protocol (IP) based connectivity. Forexample, processing unit 102 determines the APN based on the identity ofthe wireless network service provider, and then sends the APN to RFmodule 107 so that wireless communication apparatus 101 can connect tothe internet.

In another example, the setting is an authentication information. RFmodule 107 can be configured to use one of Password AuthenticationProtocol (PAP) and Challenge Handshake Authentication Protocol (CHAP).Processing unit 102 sends the setting to RF module 107 as theconfiguration information, and RF module 107 is configured to use anauthentication protocol specified in the setting in order to connect toa network provided by the wireless network service provider.

In another example, the setting is a network type. When the SIM card issubscribed to a LTE service, RF module 107 can be configured to use aspecific network type such as 2G, 3G, or LTE. Processing unit 102 cansend a setting specifying a network type as the configurationinformation to RF module 107. RF module 107 is then configured to usethe network type specified in the setting.

In another example, the setting is a roaming network setting. Processingunit 102 can enable or disable roaming services for RF module 107.Processing unit 102 can send a setting to enable roaming services or asetting to disable roaming services to RF module 107 as configurationinformation, and RF module 107 is configured according to the setting.When wireless communication apparatus is being used outside the area ofcoverage of a wireless network service provider associated with the SIMcard, RF module 107 connects to a roaming network if the setting was toenable roaming services. Alternatively, RF module 107 does not connectto a roaming network if the setting was to disable roaming services.

The settings can be entered by a user or administrator of wirelesscommunication apparatus locally or remotely through a web interface, anapplication programming interface (API), a command line interface, or aconsole. The settings can also be stored at secondary storage 105 ormain memory 103 and retrieved by processing unit 102.

The difference between the processes in FIG. 2A and FIG. 2B is that, inFIG. 2B, RF module 107 is only configured to switch its operating modeand reset when the current configuration information is not the same asa configuration information identified in step 202. It is known to thoseskilled in the art that configuring and resetting RF module 107 may takea few minutes. When wireless communication apparatus 101 is turned on orrestarted, RF module 107 may always be reset after step 203 in theprocess of FIG. 2A. However, in the process of FIG. 2B, RF module 107 isreset in step 203 only when the operating mode needs to be switched,i.e. the configuration in-formation and the current configurationinformation is determined not to be the same in step 212. On the otherhand, the additional steps 211 and 212 in FIG. 2B may also cause a delaywhen turning on or restarting wireless communication apparatus 101.

In one of the embodiments of the present invention, when RF module 107configures itself with a firmware corresponding to a wireless networkservice provider, RF module starts using settings that correspond to thefirmware.

It is known to those skilled in the arts that a RF module, such as RFmodule 107, can operate on different frequencies depending on thewireless network service provider associated with a SIM card inserted inSIM card interface 106, and hence wireless communication apparatus 101can have cellular connectivity through the wireless network provided bythe wireless network service provider. For example, the frequency rangeused by Company A may be 1900 MHz or 1700 MHz and 2100 MHz, while thefrequency range used by Company B may be 800 MHz or 1700 MHz and 2100MHz. Similarly, the frequency range used by Company A for may be 800MHz, 1900 MHz, or 2500 MHz.

For a better understanding, an illustrative scenario is provided here.For example, wireless communication apparatus 101 currently has a firstSIM card inserted in SIM card interface 106, and the first SIM card isassociated with AT&T Mobility. RF module 107 is currently configuredwith a first configuration corresponding to AT&T Mobility. The operatingmode is configured for RF module 107 being used in AT&T network. Now,the first SIM card is ejected, and a second SIM card associated withVerizon Communications is inserted in SIM card interface 106. Theconfiguration of RF module should be changed to a second configurationcorresponding to Verizon Communications. When the second SIM card isinserted, processing unit 106 retrieves the IMSI of the second SIM cardin step 201. When, in step 211, processing unit 102 retrieves thecurrent configuration information, it is determined that the currentcon-figuration is the first configuration corresponding to AT&Tmobility. In step 202, processing unit 102 identifies the secondconfiguration corresponding to Verizon Communications. In step 212, itis determined that the current configuration is not the same as thesecond configuration, and hence, in step 203, processing unit 102 sendscon-figuration information corresponding to Verizon Communications to RFmodule 107. RF module 107 is configured with the second configurationcorresponding to Verizon Communications. The operating mode isconfigured for RF module 107 being used in Verizon network. Thus, RFmodule 107 starts using settings corresponding to VerizonCommunications.

FIG. 3A is a flowchart illustrating a process according to one of theembodiments of the present invention. After a configuration informationis identified in step 202, a notification is sent to a user of wirelesscommunication apparatus 101 in step 301, informing the user about theconfiguration information. The notification can be sent to the userthrough an email, an instant message, a SMS message, a phone call, amessage shown in a web page, a popup message at a web page, or otherindicators that can be used to send the notification to the user.

In step 302, processing unit 102 determines whether a confirmation isreceived from the user. The confirmation may be sent by the user toconfirm sending configuration information to RF module 107. Therefore,if a confirmation is received, processing unit 102 sends theconfiguration information to RF module 107 in step 203. If noconfirmation is received from the user, processing unit 102 does notsend the configuration information to RF module 107 and the process endsat step 303.

For example, the configuration information is a roaming network settingwhich enables roaming services for RF module 107. Before processing unit102 sends the configuration information to RF module 107, a user isinformed that RF module 107 is going to be configured to connect to aroaming network. In order to avoid roaming charges, the user may notconfirm sending the configuration information to RF module 107 so thatroaming services are not enabled for RF module 107.

In one of the embodiments, as illustrated in FIG. 3B, steps 301 and 302may be performed after step 212 if the configuration information is notdetermined to be the same as the current configuration information instep 212.

FIG. 4A is a flowchart illustrating a process according to one of theembodiments of the present invention. After sending the configurationinformation to RF module 107 in step 203, processing unit 102 waits forRF module 107 to send a response corresponding to the third message. Instep 401, wireless communication apparatus 101 receives a correspondingresponse from RF module 107. Processing unit 102 parses thecorresponding response in step 402 to determine whether thecorresponding response is as expected in step 403. If the correspondingresponse is determined to be as expected, the process ends in step 404.Alternatively, if the corresponding response is not as expected,processing unit 102 performs step 203 again, and sends the configurationin-formation to RF module 107.

In step 403, processing unit 102 may determine whether the correspondingresponse is as expected by comparing the corresponding response with aninformation that is predetermined and stored in secondary storage 105 ormain memory 103. Alter-natively, the information may also be retrievedfrom a remote server. The information may comprise the expectedresponse, such as an expected frequency.

For example, the third message comprises information of a firmwarecorresponding to AT&T mobility, and RF module 107 is configured with thefirmware. When RF module 107 is configured with the firmwarecorresponding to AT&T mobility, RF module 107 uses a certain frequencyrange. In order to ensure that the correct frequency range is beingused, RF module 107 sends a response indicating the frequency rangeusing a fifth message. When processing unit 102 receives the fifthmessage in step 401, processing unit 102 determines whether thefrequency range is as expected in step 403. This ensures that RF module107 accurately received the third message and determined the frequencyrange. Processing unit 102 may retrieve the expected frequency rangestored in secondary storage 105 or main memory 103 and compare it withthe frequency range indicated in the fifth message. Hence processingunit 102 can determine whether the frequency range indicated in thefifth message is as expected.

In one of the embodiments, as illustrated in FIG. 4B, steps 401, 402 and403 may be performed after step 212 if the configuration information isnot determined to be the same as the current configuration informationin step 212.

FIG. 6 is a flowchart illustrating a process according to one of theembodiments of the present invention. RF module 107 receives a thirdmessage from processing unit 102 in step 601. The third messagecomprises a configuration information. The third message is sent inorder to configure RF module 107 with a configuration according to thecon-figuration information specified in the third message. In step 602,RF module 107 retrieves a configuration corresponding to theconfiguration information, and is then configured with the configurationin step 603. RF module 107 then starts using settings corresponding tothe configuration information in step 604.

For example, the configuration information is information of thefirmware. RF module 107 may have several firmwares stored in a storagemedium. In step 602, RF module 107 retrieves the firmware that wasspecified in the configuration information, and RF module 107 is thenconfigured with the corresponding firmware in step 603. In step 604, RFmodule 107 switches to an operating mode according to the firmware anduses settings specified in the firmware.

In one variant, RF module 107 should be reset after step 603 so that itmay start using settings corresponding to the configuration informationin step 604.

In one variant, RF module 107 may not have the firmware corresponding tothe con-figuration information stored in its storage medium. In step602, RF module 107 may then retrieve the firmware from a remote serveror may send a message to processing unit 102. The message may compriseinformation that the firmware is not stored in RF module 107. Themessage may also comprise a request for sending the firmware to RFmodule 107 as a configuration information. When processing unit 102receives the request for sending the firmware, processing unit 102 mayretrieve the firmware

locally from secondary storage 105 or main memory 102, or processingunit 102 may retrieve the firmware from a remote server. Processing unit102 then sends the firmware as the configuration information to RFmodule 107, and thus RF module 107 is configured with the firmware.Alternatively, processing unit 102 may send a notification to the userrequesting the user to manually store the firmware in RF module 107 orsecondary storage 105 or main memory 103. RF module 107 can then beconfigured with the firmware.

According to one of the embodiments of the present invention, wirelesscommunication apparatus 101 may have one or more SIM card interfaces 106and one or more RF module 107. For example, when wireless communicationapparatus 101 has a first SIM card interface 106 and a second SIM cardinterface 106. Priorities may be assigned to SIM cards inserted in thefirst and second SIM card interface 106. RF module 107 is configuredbased on IMSI 501 of a SIM card with highest priority. For illustrationpurpose, a first SIM card is inserted in the first SIM card interface106, and a second SIM card is inserted in the second SIM card interface106. The first SIM card is assigned with the highest priority and thesecond SIM card is assigned with the lowest priority. Therefore,processing unit 102 sends configuration information corresponding toIMSI 501 of the first SIM card to RF module 107, such that RF module 107is configured to use settings or an operating mode corresponding to awireless network service provider of the first SIM card. The prioritiesmay be assigned to the first and second SIM card using a predefinedconfiguration of wireless communication apparatus 101. Alternatively, auser of wireless communication apparatus 101 can assign the prioritiesto the first and second SIM card by configuring wireless communicationapparatus 101 through a web interface, an application programminginterface (API), a command line interface, or a console.

In one example, the priority is based on the position of a SIM card,i.e., whether a SIM card is housed in wireless communication apparatus101, or the SIM card is housed in an external device.

According to one of the embodiments of the present invention, a SIM cardinterface selector connects a plurality of SIM card interfaces to RFmodule 107. The SIM card interface selector is controlled by processingunit 102. Examples of a SIM card interface selector for two SIM cardinterfaces include TXS02326 Dual-Supply 2:1 SIM CardMultiplexer/Translator supplied by Texas Instruments and LTC4557 DualSIM/Smart Card Power Supply and Interface supplied by Linear Technology.Processing unit 102 may instruct the SIM card interface selector toselect one of the SIM card interfaces from the plurality of SIM cardinterfaces.

According to one of the embodiments, the selection may be performedaccording to received signal quality, predefined priority, preferences,price and etc.

According to one of the embodiments of the present invention, processingunit 102 may use the SIM card interface selector to select a SIM cardbased on event triggers. Event triggers include but are not limited to ageographic location trigger, a data usage trigger, a received signalquality trigger, a time trigger, a duration of usage trigger, a billingcycle trigger etc. Event triggers may be referred to as a first eventtrigger and a second event trigger. Processing unit 102 may select afirst SIM card and start using the first SIM card when the first eventtrigger occurs. Processing unit 102 may then

stop using the first SIM card when the second event trigger occurs.Processing unit 102 may also start using a second SIM card when thesecond event trigger occurs. In one variant, a plurality of triggers canbe combined to form an event trigger. For example, the first eventtrigger can be based on a geographic location trigger and a data usagetrigger. In another example, the second event trigger can be based onthe duration of usage trigger and the billing cycle information trigger.In one variant, the first event trigger and the second event trigger canbe based on the same trigger(s).

In another example, wireless communication apparatus 101 houses or isconnected to an external device housing a first SIM card, a second SIMcard, and also a first RF module 107 and a second RF module 107. Thefirst SIM card is inserted in a first SIM card interface 106, and thesecond SIM card is inserted in a second SIM card interface

106. For illustration purpose, processing unit 102 sends configurationinformation corresponding to IMSI 501 of the first SIM card to the firstRF module 107, such that the first RF module 107 is configured to usesettings or an operating mode corresponding to a wireless networkservice provider of the first SIM card. Similarly, processing unit 102sends configuration information corresponding to IMSI 501 of the secondSIM card to the second RF module 107, such that the second RF module 107is configured to use settings or an operating mode corresponding to awireless network service provider of the second SIM card.

In another example, wireless communication apparatus 101 may have afirst RF module 107 and a second RF module 107. When the first SIM cardinterface 106 has a first SIM card inserted, but the second SIM cardinterface 106 does not have a second SIM card inserted, processing unit102 may select one of the first RF module 107 and the second RF module107 for sending configuration information corresponding to IMSI 501 ofthe first SIM card. For example, when the first RF module 107 isselected, processing unit 102 sends configuration informationcorresponding to IMSI 501 of the first SIM card to the first RF module107, and the first RF module 107 is configured to use settings or anoperating mode corresponding to a wireless network service provider ofthe first SIM card.

The embodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated.

1. A method for configuring at least one radio frequency (RF) module bya wireless communication apparatus, comprising the steps of: (a) sendinga first message to the at least one RF module; wherein the first messagecomprises a request for at least one international mobile subscriberidentity (IMSI) of at least one subscriber identity module (SIM) card;(b) receiving a second message from the at least one RF module; whereinthe second message comprises the at least one IMSI of the at least oneSIM card; wherein the at least one RF module retrieves the at least oneIMSI from the at least one SIM card; (c) determining which wirelessnetwork service provider(s) the at least one SIM card is associatedwith; (d) identifying at least one configuration information based onthe wireless network service provider; (e) sending a third message tothe at least one RF module, wherein the third message comprises the atleast one configuration information; and (f) configuring the at leastone RF module based on the at least one configuration information. 2.The method of claim 1, wherein the at least one configurationinformation is a firmware, one or more settings, or informationcorresponding to a firmware.
 3. The method of claim 2, wherein the oneor more settings can be selected from a group consisting of a frequencyvalue, an Access Point Name (APN), an authentication information, anetwork type, and roaming network settings.
 4. The method of claim 1,wherein the at least one configuration information is substantiallybased on Qualcomm MSM Interface (QMI) protocol.
 5. The method of claim1, when the wireless communication apparatus houses a plurality of SIMcards, further comprising assigning priorities to the plurality of SIMcards, wherein the at least one IMSI is an IMSI of a SIM card with thehighest priority, wherein the priorities are based on position of theplurality of SIM cards.
 6. The method of claim 2, when the at least oneconfiguration information is information corresponding to a firmware,the method comprising, after step (d): (g) determining whether thefirmware is stored in the at least one RF module; and (h) if thefirmware is not stored in the at least one RF module: sending thefirmware to the at least one RF module; wherein when the firmware isstored in the at least one RF module, step (f) is performed by the atleast one RF module.
 7. The method of claim 1, further comprising, afterstep (d): (i) sending a fourth message to the at least one RF module,wherein the fourth message comprising a request for a currentconfiguration information of the at least one RF module; (j) comparingthe current configuration information of the at least one RF module withthe at least one configuration information; (k) performing steps (e)-(f)if the current configuration information of the at least one RF moduleis not the same as the at least one configuration information; and (l)not performing steps (e)-(f) if the current configuration information ofthe at least one RF module is the same as the at least one configurationinformation.
 8. The method of claim 1, further comprising, after step(f), verifying whether the configuration of the at least one RF modulehas been changed according to the at least one configurationinformation.
 9. The method of claim 8, wherein the verifying isperformed by determining whether a fifth message received from the atleast one R F module is same as an expected response.
 10. The method ofclaim 1, further comprising, after step (f), resetting the at least oneRF module.
 11. A wireless communication system for configuring a radiofrequency (RF) module, comprising: at least one RF module; at least oneSubscriber Identity Module (SIM) card interface; a wirelesscommunication apparatus; wherein the at least one RF module is housed inthe wireless communication apparatus or in an external device; whereinthe at least one SIM card interface can be housed in the wirelesscommunication apparatus or in the external device; wherein the wirelesscommunication apparatus comprises: at least one network interface; atleast one processing unit; at least one non-transitory computer readablestorage medium storing program instructions executable by the at leastone processing unit for: (a) sending a first message to the at least oneRF module; wherein the first message comprises a request for at leastone international mobile subscriber identity (IMSI) of at least onesubscriber identity module (SIM) card; (b) receiving a second messagefrom the at least one RF module; wherein the second message comprisesthe at least one IMSI of the at least one SIM card; wherein the at leastone RF module retrieves the at least one IMSI from the at least one SIMcard; (c) determining which wireless network service provider(s) the atleast one SIM card is associated with; (d) identifying at least oneconfiguration information based on the wireless network serviceprovider; (e) sending a third message to the at least one RF module,wherein the third message comprises the at least one configurationinformation; and (f) configuring the at least one RF module based on theat least one configuration information.
 12. The wireless communicationsystem of claim 11, wherein the at least one configuration informationis a firmware, one or more settings, or information corresponding to afirmware.
 13. The wireless communication system of claim 12, wherein theone or more settings can be selected from a group consisting of afrequency value, an Access Point Name (APN), an authenticationinformation, a network type, and roaming network settings.
 14. Thewireless communication system of claim 11, wherein the at least oneconfiguration information is substantially based on Qualcomm MSMInterface (QMI) protocol.
 15. The wireless communication system of claim11, when the wireless communication apparatus houses a plurality of SIMcards, wherein the at least one non-transitory computer readable storagemedium further storing program instructions executable by the at leastone processing unit for: assigning priorities to the plurality of SIMcards, wherein the at least one IMSI is an IMSI of a SIM card with thehighest priority, wherein the priorities are based on position of theplurality of SIM cards.
 16. The wireless communication system of claim2, when the at least one configuration information is informationcorresponding to a firmware, the at least one non-transitory computerreadable storage medium further storing program instructions executableby the at least one processing unit for: (g) after step (d): determiningwhether the firmware is stored in the at least one RF module; and (h) ifthe firmware is not stored in the at least one RF module: sending thefirmware to the at least one RF module; wherein when the firmware isstored in the at least one RF module, step (f) is performed by the atleast one RF module.
 17. The wireless communication system of claim 1,the at least one non-transitory computer readable storage medium furtherstoring program instructions executable by the at least one processingunit for: (i) after step (d): sending a fourth message to the at leastone RF module, wherein the fourth message comprising a request for acurrent configuration information of the at least one RF module; (j)comparing the current configuration information of the at least one RFmodule with the at least one configuration information; (k) performingsteps (e)-(f) if the current configuration information of the at leastone RF module is not the same as the at least one configurationinformation; and (l) not performing steps (e)-(f) if the currentconfiguration information of the at least one RF module is the same asthe at least one configuration information.
 18. The wirelesscommunication system of claim 1, the at least one non-transitorycomputer readable storage medium further storing program instructionsexecutable by the at least one processing unit for: after step (f),verifying whether the configuration of the at least one RF module hasbeen changed according to the at least one configuration information.19. The wireless communication system of claim 8, wherein the verifyingis performed by determining whether a fifth message received from the atleast one RF module is same as an expected response.
 20. The wirelesscommunication system of claim 1, the at least one non-transitorycomputer readable storage medium further storing program instructionsexecutable by the at least one processing unit for: after step (f),resetting the at least one RF module.